iT邦幫忙

2024 iThome 鐵人賽

0
自我挑戰組

C++自學系列 第 17

Day 17 抽象類別與純虛擬函數

  • 分享至 

  • xImage
  •  

抽象類別與純虛擬函數
抽象類別是不能被實例化的類別,它用來作為基類,提供通用的接口供其他派生類實現。抽象類別包含至少一個純虛擬函數,這使得抽象類別成為只能被繼承的類別

基本概念:
純虛擬函數:是一個不提供具體實現的虛擬函數,要求派生類必須實現它。純虛擬函數的語法是在函數簽名後加 = 0

抽象類別:包含至少一個純虛擬函數的類別,抽象類別不能被實例化,必須被派生類繼承並實現其純虛擬函數才能創建對象
https://ithelp.ithome.com.tw/upload/images/20241014/20168421z93m2iqBro.png

抽象類別Shape:Shape:是一個抽象類別,因為它包含一個純虛擬函數draw()
純虛擬函數draw():在Shape 中定義,要求所有派生類都必須實現draw()函數
派生類:Circle和Square都繼承自Shape,並且重寫了draw() 函數,提供了具體的實現

總結:
抽象類別定義了通用接口,並要求派生類實現這些接口
純虛擬函數強制派生類提供具體實現,實現多型和靈活的設計
抽象類別無法直接實例化,只能通過派生類來使用


上一篇
Day 16 多型與虛擬函數
下一篇
Day 18 函數模板與類別模板
系列文
C++自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言